Skip to content

feat(gaia): default plan-execution task sub-agents to Sonnet#538

Merged
stevensacks merged 2 commits into
mainfrom
gaia-plan-sonnet-execution
Jul 3, 2026
Merged

feat(gaia): default plan-execution task sub-agents to Sonnet#538
stevensacks merged 2 commits into
mainfrom
gaia-plan-sonnet-execution

Conversation

@stevensacks

Copy link
Copy Markdown
Contributor

What

When a GAIA plan is executed, the cold orchestrator started from KICKOFF.md dispatched each per-task implementation sub-agent as general-purpose with no model: pinned, so it inherited the orchestrator session's model, typically Opus. All the hard reasoning (complexity resolution, contract design, decomposition) is already done upstream in /gaia-spec + its audit and /gaia-plan + the decomposition audit, so execution should run on the cheaper model.

Change

The /gaia-plan generator (.claude/skills/gaia/references/plan.md) now instructs the planner to author ORCHESTRATOR.md and KICKOFF.md that:

  • Pin every task sub-agent to model: "sonnet" explicitly on dispatch, decoupling execution from the orchestrator's own session model.
  • Keep a per-phase Opus escape hatch: the planner may escalate a genuinely deep-synthesis phase to model: "opus", naming which phase and why. Sonnet is the floor; Opus is a justified exception, never the blanket default.
  • Annotate each phase's execution model in the README/KICKOFF phase list, and carry a one-line Sonnet-default statement in KICKOFF.md so a cold orchestrator applies it even if ORCHESTRATOR.md drops from context.

The orchestrator itself and the pre-merge code-review-audit (Opus, pinned via its own frontmatter) are unchanged.

Doc-only: the plan artifacts are generated at runtime, so the fix lives in the generator spec plus the Task Orchestration and GAIA Plan wiki pages and a ## [Unreleased] CHANGELOG entry. Also gitignores Python bytecode from the .gaia/tests observability infra.

Verification

  • Rule-compliance greps clean: no absolute paths in the edited .claude/ file; no historical/PR/date/UAT/SPEC refs in the edited wiki prose.
  • Sonnet pins confirmed present in the generator; the pre-existing planner-model decision (step 2) is unchanged.

🤖 Generated with Claude Code

When a plan runs, the cold orchestrator dispatched each task sub-agent
with no model pinned, so it inherited the orchestrator session's model
(usually Opus). The feature's complexity is already resolved upstream in
/gaia-spec and /gaia-plan and their audits, so execution should run on
the cheaper model.

The /gaia-plan generator now instructs the planner to pin task
sub-agents to model: "sonnet" by default in the ORCHESTRATOR.md and
KICKOFF.md it writes, with a per-phase Opus escape hatch the planner must
justify. Documents the model story in the Task Orchestration and GAIA
Plan wiki pages and adds a CHANGELOG entry.

Also gitignores Python bytecode from the .gaia/tests observability infra.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

code-review-audit skipped: no audit-relevant files changed in the un-audited delta (since the last clean audit); GAIA-Audit commit status stamped on HEAD so the merge gate is satisfied with no local audit run

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

code-review-audit skipped: no audit-relevant files changed in the un-audited delta (since the last clean audit); GAIA-Audit commit status stamped on HEAD so the merge gate is satisfied with no local audit run

@stevensacks stevensacks merged commit 25c3772 into main Jul 3, 2026
7 checks passed
@stevensacks stevensacks deleted the gaia-plan-sonnet-execution branch July 3, 2026 11:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant